package aOrganizar;

import java.util.Collection;
import java.util.List;


public class Buscador
{
	private ItinerarioMaker itinerarioMaker;
	
	//Constructor de la clase.
	public Buscador()
	{
		itinerarioMaker = ItinerarioMaker.getInstance();		
	}

	//Metodo de busqueda, retorna una lista de itinerarios.
	public List<Itinerario> buscar(Busqueda busqueda, Usuario usuario)
	{
		//Obtengo una coleccion con todos los itinerarios, que cumplan con las condiciones especif en la busqueda.
		Collection<Itinerario> itinerarios = itinerarioMaker.armarItinerario(busqueda,usuario);

		//Filtrar las superofertas para los usuarios que sean VIP.
		itinerarios = usuario.filtrarSuperOfertas(itinerarios);
		
		//Aplicar el criterio de filtrado.
		itinerarios = busqueda.filtra(itinerarios);
		
		//Aplicar los criterios de ordenamiento.
		itinerarios = busqueda.ordenar(itinerarios);

		return (List<Itinerario>) itinerarios;
	}
}